#ifndef GLWIDGET_H
#define GLWIDGET_H

#include <QOpenGLWindow>
#include <QOpenGLFunctions>
#include <QOpenGLBuffer>
#include <QOpenGLVertexArrayObject>

class QOpenGLShaderProgram;

class GLWidget : public QOpenGLWindow, protected QOpenGLFunctions
{
    Q_OBJECT

public:
    GLWidget();
    virtual ~GLWidget();

    void initializeGL();
    void resizeGL(int width, int height);
    void paintGL();
    void teardownGL();

private:
    /*OpenGL状态信息*/
    QOpenGLBuffer m_vertex;
    QOpenGLVertexArrayObject m_object;
    QOpenGLShaderProgram *m_program;

    /*打印OpenGL上下文信息*/
    void printContextInformation();
};

#endif // GLWIDGET_H
